1. Field
Apparatuses and methods consistent with exemplary embodiments relate to a storage device, and, more particularly, to a storage device for supporting virtual functions, a method of scheduling tasks of the storage device, and a storage system.
2. Description of the Related Art
An example of a data storage device based on a non-volatile memory device includes a solid state drive (SSD). As an interface used for a data storage device such as the SSD, serial advanced technology attachment (SATA), peripheral component interconnect express (PCIe), serial attached small computer system interface (SAS), or the like may be used. The performance of the SSD is gradually improved, and thus the amount of data to be processed by the SSD is increased. However, a conventional interface, such as an SATA, has a basic limitation because the conventional interface is not specialized in a data storage device such as the SSD. Consequently, to provide a standardized interface suitable for the SSD, a non-volatile memory express (NVMe) has been introduced. The NVMe is a register-level interface for communication between a data storage device, such as the SSD, and a host software. The NVMe is based on a conventional PCIe bus, and is an interface optimized for the SSD.
With the advance of a semiconductor manufacturing technology, the operating speed of a host device, such as a computer, a smart phone, or a smart pad, which communicates with a storage device, has been improved. Further, according to the improvement in the operation speed of a host device, the virtualization of a host device for driving various virtual functions has been introduced. However, the conventional NVMe has a limitation in supporting the virtual functions because the conventional NVMe cannot sufficiently ensure the isolation and fairness between virtual machines in the virtualization.